﻿using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.Collections.Generic;
using System.Runtime.Serialization;


namespace MoviTiendas.Logica
{
    [DataContract]
    public class Lista
    {
        // ------------------------------------------------------------------------------------
        // Atributos
        // -----------------------------------------------------------------------------------

        /**
         * Nombre de la lista
         */
            [DataMember]
        public String nombre { get; set; }

        /**
         * Items de la lista
         */
            [DataMember]
        public List<Item> items { get; set; }

        /**
         * Precio total de la lista
         */
            [DataMember]
            public int precioTotal
            {
                get
                {
                    int temp = 0;
                    foreach (Item i in items)
                        temp += i.cantidad * i.precioUnitario;
                    return temp;
                }
                set
                {
                    ;
                }

            }

        // ------------------------------------------------------------------------------------
        // Constructor
        // ------------------------------------------------------------------------------------

        /**
         * Constructor de la clase
         */
        public Lista(String nNombre)
        {
            nombre = nNombre;
            items = new List<Item>();
            precioTotal = 0;
        }

        // ------------------------------------------------------------------------------------
        // Métodos
        // ------------------------------------------------------------------------------------

        /**
         * Agregar item
         * @item - Item que se quiere agregar a la lista
         */
        public void agregarItem(Item item)
        {
            Item itemCopia = item.darCopia();
            items.Add(itemCopia);
            precioTotal += item.precioUnitario*item.cantidad;
        }


        public void enviarItemsACarritos()
        {
            foreach (Item it in items)
            {
                MoviTienda.darInstancia.agregarItemACarrito(it.darCopia());
            }
        }
    }
}
